
<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        
        <title>我们怎么使用 FibJS 快速搭建企业 ERP 系统的后台 - FibJS</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <link href="css/flexslider.min.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/line-icons.min.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/elegant-icons.min.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/lightbox.min.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/theme-aquatica.css" rel="stylesheet" type="text/css" media="all"/>
        <link href="css/custom.css" rel="stylesheet" type="text/css" media="all"/>
        <link rel="icon" type="image/png" href="img/icon.png">
        <!--[if gte IE 9]>

        <!--[if gte IE 9]>
        	<link rel="stylesheet" type="text/css" href="css/ie9.css" />
		<![endif]-->
        <script src="js/modernizr-2.6.2-respond-1.1.0.min.js"></script>
    </head>
    <body>
    	<div class="loader">
    		<div class="spinner">
			  <div class="double-bounce1"></div>
			  <div class="double-bounce2"></div>
			</div>
    	</div>
				
		<div class="nav-container">
			<nav class="top-bar">
				<div class="container">
				
					<div class="row nav-menu">
						<div class="col-sm-3 col-md-2 columns">
							<a href="index.html">
								<img class="logo logo-light" alt="Logo" src="img/logo-light.png">
								<img class="logo logo-dark" alt="Logo" src="img/logo-dark.png">
							</a>
						</div>
					
						<div class="col-sm-9 col-md-10 columns  text-right">
							<ul class="menu">
								<li><a href="index.html">Home</a>
								</li>
								<li><a href="guide.html">Guide</a>
								</li>
								<li><a  href="moudle.html">Moudle</a>
								</li>
								<li><a href="object.html">Object</a>
								</li>
								<li><a href="download.html">Download</a>
								</li>
							</ul>
						</div>
					</div><!--end of row-->
					
					<div class="mobile-toggle">
						<i class="icon icon_menu"></i>
					</div>
					
				</div><!--end of container-->
			</nav>
		</div>
		<section class="main-container primary-features">
			<div class="container search">
                <div class="row">
                    <div class="col-sm-12 col-md-9 columns">
                       <h1>Article 文章</h1>
                    </div>
                    <div class="col-sm-12 col-md-3 columns text-right">
                        <input type="text" class="form-control search" placeholder="Search for...">
                    </div>
                </div>
            </div>
        </section>
        <section class="main-container">
			<div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        <a href=#>首页</a> / <a href=#>案例分析</a>
                    </div>
                </div>
            </div>
        </section>

        <section class="main-container">
            <div class="container">
               <div class="row" style="background-color: #fff;">
                    <div class="col-md-10 col-md-offset-1 col-sm-10 col-sm-offset-1 main-content article">
                    <h1 id="2017-08-27, Version v0.12.0">我们怎么使用 FibJS 快速搭建企业 ERP 后台</h1>
                    <p>本文意在介绍Node.js案例，介绍了Groupon,Lowe's Home Improvement 还有Skycatch这几个公司如何成功地用Node.js部署企业应用程序。这些案例研究源自Node Foundation的<a href="https://www.youtube.com/playlist?list=PLfMzBWSH11xYNeUJXap4NTMX3TFtH-_0z">企业对话系列</a>。如果你很好奇我们为什么加入Node Fundation，它的目的又是作何，请前往<a href="https://medium.com/@nodejs/q-a-with-risingstack-on-joining-the-node-js-foundation-c6370f0b04b1#.y7r5bmvzt">这里</a>.
                    <img src=img/bg-1.jpg>
                    </p>
                    
<h2 id="groupon-node-js-web-">Groupon使用Node.js重构整个web层</h2>
<p> Adam Geitgey是首个参与Node Foundation 企业对话系列的人，他已在最大的电子商务公司之一——Groupon担任软件工程经理5年。</p>
<p>他初入公司时，公司还是个主要使用Ruby on Rails的网店系统，一切都要作为一个巨大的单片应用程序运行。这样运行了很长一段时间都没有问题，但最终，它变得越来越难维护，他们似乎要放弃它。</p>
<p>此外，Groupon近几年做了许多收购，因此，除了他们的Ruby on Rails栈，他们最终在欧洲还有个新的Java栈，在南美洲有个PHP栈。</p>
<p>Groupon意识到需要替换当前技术栈，所以在大约3-4年前，他们开始寻找一个更适合的软件平台。</p>
<h3 id="-node-">选择Node的原因</h3>
<p>Groupon决定采用Node.js出于以下原因：</p>
<ul>
<li><p>JavaScript接近通用语言，所以它学习和工作的成本更低，并且开发人员间也更容易交流。</p>
</li>
<li><p>Node.js应用程序的扩展在测试中运行良好。Node不仅统一了他们的开发语言而且在某些情况下为他们提供性能优化。</p>
</li>
<li><p>Node开发人员可以重用写过的代码元素，这时不时能带来极大的便利。</p>
</li>
<li><p>Node.js在Groupon是最统一的平台，即使他们用Java写了很多后端服务，使用Java的框架和方法也多种多样。但Nodejs提供了一个方法，能将软件一大块一举移动到一个平台上。</p>
</li>
</ul>
<p>Groupon的工程团队最终决定用Node.js重构了整个web层。在重构过程中，Adam的任务是管理团队开发平台以及其他团队用于在生产环境中构建和运送Node应用的框架。</p>
<p>The team also released several open-source libraries that they built along the way:
该团队一路构建时也发布了几个自建的开源库：</p>
<ul>
<li><p><a href="https://github.com/groupon/gofer">gofer</a>，一个用于与后端服务对话的API客户端库。</p>
</li>
<li><p><a href="https://github.com/groupon/node-cached">node cached</a>，Node.js的缓存库。</p>
</li>
</ul>
<p>如今Groupon在多个平台上均使用Node:</p>
<ul>
<li><p>大约3-400个后端服务使用Node.js混合Java和Ruby运行。</p>
</li>
<li><p>他们使用Node做为API集成层。</p>
</li>
<li><p>他们所有的客户端app，包括网站都使用Node.</p>
</li>
</ul>
<p>当前，Groupon在生产中的有70个Node.js的app,这些app在30个国家都有使用。总的来说，Groupon在前端大量使用Node.js,各处也都有几处后端用途。</p>
<h3 id="groupon-node-">Groupon的Node前景</h3>
<p>对于未来，他们完全相信值得为web平台投资Node。现在他们所有的产品服务都建立在Node4之上，但他们早已对Node6心怀期待，而且还正在等待长期支持版本出世。</p>
<p>在过去，由于Groupon使用Ruby，导致他们已经使用了非常多CoffeeScript，这是一个绝好的机会帮助他们最终迁离CoffeeScript然后规范纯JavaScript。</p>
<p>Another big project Groupon is working on is moving from a model where developers maintain their own servers to a model where the company provides them with clusters of servers and their apps run on them - more like a Heroku model. 
Groupon另一个在运行的大项目是从由开发人员维护自己的服务器模式转移到将app运行在由其他公司提供的服务集群上的模式——更像Heroku模式。</p>
<p><a href="https://trace.risingstack.com/?utm_source=blog&amp;utm_medium=roadblock&amp;utm_content=debugging&amp;utm_campaign=trace">使Node.js调试更容易 - 查看 <strong>Trace by RisingStack!</strong></a> </p>
<h2 id="node-js-skycatch-">Node.js：Skycatch的黏合剂</h2>
<p>Andre Deutmeyer是Node Foundation企业对话系列的下一个参与者，他在Skycatch的职责是领导web基础架构和开发团队。</p>
<p>Skycatch是一家帮助进行捕获，管理和分析商业无人机数据的数据公司，它将构造或挖掘站点视为需要查询的数据库。现有的工具创建时非常困难又耗时，如编写原始SQL查询的工具，但是该公司的解决方案使得从站点中提取可操作数据变得垂手而得。</p>
<p>Skycatch拥有一个由20位开发成员组成的跨职能小团队，正如我已提过的，Andre的职责是领导web，基础架构，以及开发团队。他参与架构和扩展数据处理，因为他的目标是可靠并时效地传输你发送的数据。</p>
<p>What helps them with that? Of course, Node.js, but where do they use it?
什么工具能令他们做这样的事呢？当然是Node.js,但是他们在哪里用到的它呢？</p>
<blockquote>
<p>"你能想得到的所有地方我们都用了Node——Node是我们的黏合剂"</p>
</blockquote>

                <!--end of content-->

            </div>
                </div>
        </section>


		<div class="footer-container">
			<div class="footer-container">
			
		
			<footer class="short bg-secondary-1">
				<div class="container">
                    <div class="row">
						<div class="col-sm-10 copyright">
							<span>© Copright 2017 FibJS.org | <a href=support.html>支持我们</a></span>
							<!--ul>
								<li><a href="#">Terms Of Use</a></li>
								<li><a href="#">Privacy &amp; Security Statement</a></li>
								<li><a href="#">Sitemap</a></li>
							</ul-->
						</div>
						
						<div class="col-sm-2 text-right">
							<ul class="social-icons">
								<li>
									<a href="#">
										<i class="icon social_twitter"></i>
									</a>
								</li>
								
								<li>
									<a href="#">
										<i class="icon social_facebook"></i>
									</a>
								</li>
							</ul>	
						</div>
					</div><!--end of row-->
				</div><!--end of container-->
			</footer>
		</div>
				
		<script src="js/jquery.min.js"></script>
        <script src="js/jquery.plugin.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/jquery.flexslider-min.js"></script>
        <script src="js/smooth-scroll.min.js"></script>
        <script src="js/skrollr.min.js"></script>
        <script src="js/spectragram.min.js"></script>
        <script src="js/scrollReveal.min.js"></script>
        <script src="js/isotope.min.js"></script>
        <script src="js/twitterFetcher_v10_min.js"></script>
        <script src="js/lightbox.min.js"></script>
        <script src="js/jquery.countdown.min.js"></script>
        <script src="js/scripts.js"></script>
        
        
        <script type=text/javascript src=http://fibjs.org/js/common.js></script>
        <script type=text/javascript src=http://fibjs.org/js/index.js></script>
    </body>
</html>
				